<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\View\View;
use Illuminate\Support\Facades\Redis;


class CardController extends Controller
{

    /**
     * 业务控制器， 写入队列
     * @functionName changeYe /
     * @author aaron.chen
     * @DateTime 2025/2/13 13:59
     */
 public function changeYe(){

     //1、模拟 数据库数据
     $demo_data=['uid'         => mt_rand(1000,9999),                //用户编号
                 'amount'     => mt_rand(100,9999),                  //变动金额
                 'createtime' => date("Y-m-d H:i:s"),         //事件秒戳
               ];

     //2、创建Redis的数据Key
     $val = json_encode($demo_data,256);  //数据字符串化
     $key = md5($val);                          //制作数据指纹
     $key = "changeamout-{$key}";               //队列里唯一的key

     //3、写入队列：（唯一性 队列里值允许存在一个业务key 不重复 拦截分布式并发）
     if(Redis::setnx($key,$val)){ //确实数据唯一性，添加锁，确保队列里唯一，不被并发重复提交

         \App\Jobs\changeBalance::dispatch($key);//->delay(2);
         echo "写入队列成功";

     }else{
         echo "任务已经在执行队列";
     }

 }



}
